<?php

namespace App\Helpers;

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

class Image
{
    /**
     * 七牛云上传
     * composer require qiniu/php-sdk
     * @param $image
     * @return false|string
     * @throws \Exception
     */
    public function uploadFile($image,$AK,$SK,$bucket,$url){
        // 需要填写你的 Access Key 和 Secret Key
        $accessKey = $AK;
        $secretKey = $SK;
        $bucket = $bucket;

        // 构建鉴权对象
        $auth = new Auth($accessKey, $secretKey);

        // 生成上传 Token
        $token = $auth->uploadToken($bucket);

        // 要上传文件的本地路径
        $filePath = $image;
        $ext = $filePath->getClientOriginalExtension();
        // 上传到存储后保存的文件名
        $key = md5(rand(10000,99999).time()).$ext;

        // 初始化 UploadManager 对象并进行文件的上传。
        $uploadMgr = new UploadManager();

        // 调用 UploadManager 的 putFile 方法进行文件的上传。
        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
        if ($err !== null) {
            return json_encode(['code' => 500,'msg' => '上传失败','data' => '']);
        } else {
            $img_url = $url.$ret['key'];
            return $img_url;
        }
    }
}
